package cc.mrbird.febs.system.vo;

import cc.mrbird.febs.common.converter.TaxInfoExcelReadConverter;
import cc.mrbird.febs.common.validator.CardIdValidator;
import cc.mrbird.febs.common.validator.NameExcelValidator;
import cc.mrbird.febs.system.domain.TShopTaxInfo;
import com.wuwenze.poi.annotation.Excel;
import com.wuwenze.poi.annotation.ExcelField;
import com.wuwenze.poi.validator.MobileValidator;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 *
 *
 * @author dtwei
 */
@Data
@Excel("商铺信息")
public class TShopExcelVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 商铺名称
     */
    @ExcelField(
            value = "商铺名称",
            required = true,
            validator = NameExcelValidator.class,
            comment = "请填写名称，最大长度为20，且不能重复"
    )
    private String shopName;

    /**
     * 商铺编码
     */
    @ExcelField(
            value = "商铺编码",
            required = true,
            validator = NameExcelValidator.class,
            comment = "请填写商铺编码，最大长度为20，且不能重复"
    )
    private String shopCode;

    /**
     * 街道
     */
    @ExcelField(value = "街道")
    private String street;

    /**
     * 具体地址
     */
    @ExcelField(value = "详细地址")
    private String shopAdr;

    /**
     * 所属区域ID
     */
    private Long areaId;

    /**
     * 所属四级片区
     */
    @ExcelField(
            value = "所属四级片区",
            required = true,
            comment = "请填写所属片区"
    )
    private String areaName;

    /**
     * 产权人ID
     */
    private Long ownerId;

    /**
     * 产权人名称
     */
    @ExcelField(value = "产权人")
    private String ownerName;

    /**
     * 产权人身份证号
     */
    @ExcelField(
            value = "产权人身份证号",
            validator = CardIdValidator.class
    )
    private String ownerCardId;

    /**
     * 产权人联系电话
     */
    @ExcelField(
            value = "产权人联系电话",
            validator = MobileValidator.class
    )
    private String ownerMobile;

    /**
     * 经营人ID
     */
    private Long opeId;

    /**
     * 经营人名称
     */
    @ExcelField(value = "经营人")
    private String opeName;

    /**
     * 经营人身份证号
     */
    @ExcelField(
            value = "经营人身份证号",
            validator = CardIdValidator.class
    )
    private String opeCardId;

    /**
     * 经营人联系电话
     */
    @ExcelField(
            value = "经营人联系电话",
            validator = MobileValidator.class
    )
    private String opeMobile;

    /**
     * 经营类型
     */
    @ExcelField(value = "经营类型")
    private String opeType;

    /**
     * 年租金
     */
    @ExcelField(value = "年租金")
    private BigDecimal rent;

    /**
     * 年经营收入
     */
    @ExcelField(value = "年收入")
    private BigDecimal revenue;

    /**
     * 纳税情况
     */
    @ExcelField(value = "纳税情况", readConverter = TaxInfoExcelReadConverter.class)
    private List<TShopTaxInfo> taxInfo;
}
